package com.station.Activitys.http.api;


import com.station.Activitys.bean.ImageJson;
import com.station.Activitys.bean.MyTestMsg;
import com.station.Activitys.bean.State;
import com.station.Activitys.bean.Survey;
import com.station.Activitys.bean.SurveyDetails;
import com.station.Activitys.bean.WorkMapMsg;

import java.util.List;

import retrofit2.http.POST;
import retrofit2.http.Query;
import rx.Observable;

/**
 * 项目名称：
 * 类描述：工单 接口 API
 * 创建人：张飞祥
 * 创建时间：2017/11/24  上午 10:33
 * 修改人：张飞祥
 * 修改时间：2017/11/24  上午 10:33
 * 修改备注：
 */
public interface WorkAPI {

    //TODO 工单处理 列表
    @POST("BaseStationInfo/AppLoadWorkOrderList")
    Observable<List<Survey>> workList(
            @Query("userId") int userId, @Query("PhysicalStationName") String PhysicalStationName,
            @Query("workOrderType") String workOrderType, @Query("startTime") String startTime,
            @Query("endTime") String endTime, @Query("pageIndex") int pageIndex,
            @Query("pageSize") int pageSize);

    //TODO 工单 勘察（室分） 保存
    @POST("BaseStationInfo/WebSaveSurveyInfo")
    Observable<State> workRoomSave(
            @Query("userId") int userId,
            @Query("Id") int Id,
            @Query("StationModel") String StationModel,
            @Query("Imgs") String Imgs,
            @Query("AutoGpsX") String AutoGpsX,
            @Query("AutoGpsY") String AutoGpsY,
            @Query("ManualInputGpsX") String ManualInputGpsX,
            @Query("ManualInputGpsY") String ManualInputGpsY,
            @Query("SignalIntensity") int SignalIntensity,
            @Query("ChamberMolecularSceneType") String ChamberMolecularSceneType,
            @Query("FrequencyChannel") String FrequencyChannel,
            @Query("CompartmentType") String CompartmentType,
            @Query("CoveringBuildingsFloorsOrLocations") String CoveringBuildingsFloorsOrLocations,
            @Query("CoverageArea") String CoverageArea,
            @Query("PRRUSourcesNum") String PRRUSourcesNum,
            @Query("NumberOfRRUSourcesForPassiveCellDivision") String NumberOfRRUSourcesForPassiveCellDivision,
            @Query("PassiveCellTypeSingleAndDoubleChannelType") String PassiveCellTypeSingleAndDoubleChannelType);

    //TODO 工单勘察（室分） 提交
    @POST("BaseStationInfo/WebSubmitSurveyInfo")
    Observable<State> workRoomSubmit(
            @Query("userId") int userId,
            @Query("Id") int Id,
            @Query("StationModel") String StationModel,
            @Query("Imgs") String Imgs,
            @Query("AutoGpsX") String AutoGpsX,
            @Query("AutoGpsY") String AutoGpsY,
            @Query("ManualInputGpsX") String ManualInputGpsX,
            @Query("ManualInputGpsY") String ManualInputGpsY,
            @Query("SignalIntensity") int SignalIntensity,
            @Query("ChamberMolecularSceneType") String ChamberMolecularSceneType,
            @Query("FrequencyChannel") String FrequencyChannel,
            @Query("CompartmentType") String CompartmentType,
            @Query("CoveringBuildingsFloorsOrLocations") String CoveringBuildingsFloorsOrLocations,
            @Query("CoverageArea") String CoverageArea,
            @Query("PRRUSourcesNum") String PRRUSourcesNum,
            @Query("NumberOfRRUSourcesForPassiveCellDivision") String NumberOfRRUSourcesForPassiveCellDivision,
            @Query("PassiveCellTypeSingleAndDoubleChannelType") String PassiveCellTypeSingleAndDoubleChannelType);

    //TODO 工单勘察（非室分）保存
    @POST("BaseStationInfo/WebSaveSurveyInfo")
    Observable<State> workNotRoomSave(
            @Query("userId") int userId,
            @Query("Id") int Id,
            @Query("StationModel") String StationModel,
            @Query("Imgs") String Imgs,
            @Query("AutoGpsX") String AutoGpsX,
            @Query("AutoGpsY") String AutoGpsY,
            @Query("ManualInputGpsX") String ManualInputGpsX,
            @Query("ManualInputGpsY") String ManualInputGpsY,
            @Query("SignalIntensity") int SignalIntensity,
            @Query("Height") String Height,
            @Query("AntennaAzimuth") String AntennaAzimuth,
            @Query("IsBBUCentralizedDeployment") String IsBBUCentralizedDeployment,
            @Query("SectorAllocation") String SectorAllocation,
            @Query("RRUPlanningPower") String RRUPlanningPower,
            @Query("RRUTransceiverRequirements") String RRUTransceiverRequirements,
            @Query("RemotePowerDownAdjustmentIsRequired") String RemotePowerDownAdjustmentIsRequired);

    //TODO 工单勘察（非室分）提交
    @POST("BaseStationInfo/WebSubmitSurveyInfo")
    Observable<State> workNotRoomSubmit(
            @Query("userId") int userId,
            @Query("Id") int Id,
            @Query("StationModel") String StationModel,
            @Query("Imgs") String Imgs,
            @Query("AutoGpsX") String AutoGpsX,
            @Query("AutoGpsY") String AutoGpsY,
            @Query("ManualInputGpsX") String ManualInputGpsX,
            @Query("ManualInputGpsY") String ManualInputGpsY,
            @Query("SignalIntensity") int SignalIntensity,
            @Query("Height") String Height,
            @Query("AntennaAzimuth") String AntennaAzimuth,
            @Query("IsBBUCentralizedDeployment") String IsBBUCentralizedDeployment,
            @Query("SectorAllocation") String SectorAllocation,
            @Query("RRUPlanningPower") String RRUPlanningPower,
            @Query("RRUTransceiverRequirements") String RRUTransceiverRequirements,
            @Query("RemotePowerDownAdjustmentIsRequired") String RemotePowerDownAdjustmentIsRequired);

    //TODO 工单勘察详情 申请规划 提交
    @POST("BaseStationInfo/WebSubmitApplayPlan")
    Observable<State> workApplayPlanSubmit(
            @Query("userId") int userId,
            @Query("Id") int Id,
            @Query("Vender") String Vender,
            @Query("AreaType") String AreaType,
            @Query("MainSceneType") String MainSceneType,
            @Query("Priority") String Priority,
            @Query("HighSpeedRailwayStation") String HighSpeedRailwayStation,
            @Query("Imgs") String Imgs,
            @Query("ManualInputGpsX") String ManualInputGpsX,
            @Query("ManualInputGpsY") String ManualInputGpsY,

            @Query("Height") String Height,
            @Query("AntennaAzimuth") String AntennaAzimuth,
            @Query("IsBBUCentralizedDeployment") String IsBBUCentralizedDeployment,
            @Query("SectorAllocation") String SectorAllocation,
            @Query("RRUPlanningPower") String RRUPlanningPower,
            @Query("RRUTransceiverRequirements") String RRUTransceiverRequirements,
            @Query("RemotePowerDownAdjustmentIsRequired") String RemotePowerDownAdjustmentIsRequired,

            @Query("ChamberMolecularSceneType") String ChamberMolecularSceneType,
            @Query("FrequencyChannel") String FrequencyChannel,
            @Query("CompartmentType") String CompartmentType,
            @Query("CoveringBuildingsFloorsOrLocations") String CoveringBuildingsFloorsOrLocations,
            @Query("CoverageArea") String CoverageArea,
            @Query("PRRUSourcesNum") String PRRUSourcesNum,
            @Query("NumberOfRRUSourcesForPassiveCellDivision") String NumberOfRRUSourcesForPassiveCellDivision,
            @Query("PassiveCellTypeSingleAndDoubleChannelType") String PassiveCellTypeSingleAndDoubleChannelType);

    //TODO 工单详情
    @POST("BaseStationInfo/AppLoadDetialInfo")
    Observable<SurveyDetails> workDetails(@Query("basestationId") int basestationId);

    //TODO 工单 规划 ---> 申请可研
    @POST("BaseStationInfo/SubmitAplyOfFeasibilityStudy")
    Observable<State> workPlanApplyStudy(
            //基础信息
            @Query("userId") int userId,
            @Query("Id") int Id,
            @Query("Vender") String Vender,
            @Query("AreaType") String AreaType,
            @Query("MainSceneType") String MainSceneType,
            @Query("Priority") String Priority,
            @Query("HighSpeedRailwayStation") String HighSpeedRailwayStation,
            @Query("Imgs") String Imgs,
            @Query("ManualInputGpsX") String ManualInputGpsX,
            @Query("ManualInputGpsY") String ManualInputGpsY,
            //非室分
            @Query("Height") String Height,
            @Query("AntennaAzimuth") String AntennaAzimuth,
            @Query("IsBBUCentralizedDeployment") String IsBBUCentralizedDeployment,
            @Query("SectorAllocation") String SectorAllocation,
            @Query("RRUPlanningPower") String RRUPlanningPower,
            @Query("RRUTransceiverRequirements") String RRUTransceiverRequirements,
            @Query("RemotePowerDownAdjustmentIsRequired") String RemotePowerDownAdjustmentIsRequired,
            //室分
            @Query("ChamberMolecularSceneType") String ChamberMolecularSceneType,
            @Query("FrequencyChannel") String FrequencyChannel,
            @Query("CompartmentType") String CompartmentType,
            @Query("CoveringBuildingsFloorsOrLocations") String CoveringBuildingsFloorsOrLocations,
            @Query("CoverageArea") String CoverageArea,
            @Query("PRRUSourcesNum") String PRRUSourcesNum,
            @Query("NumberOfRRUSourcesForPassiveCellDivision") String NumberOfRRUSourcesForPassiveCellDivision,
            @Query("PassiveCellTypeSingleAndDoubleChannelType") String PassiveCellTypeSingleAndDoubleChannelType,
            //规划（工程期属）
            @Query("NumOfProject") String NumOfProject);

    //TODO 申请变更
    @POST("BaseStationInfo/WebApplyChangeProcess")
    Observable<State> workApplyChange(
            @Query("userId") int userId,
            @Query("basestationId") int basestationId,
            @Query("ChangeOfResponsibilityUnit") String ChangeOfResponsibilityUnit,
            @Query("CauseOfChange") String CauseOfChange);

    //TODO 工单 变更提交
    @POST("BaseStationInfo/WebChangeBasestationInfoProcess")
    Observable<State> workChangeSubmit(
            //基础信息
            @Query("userId") int userId,
            @Query("Id") int Id,

            @Query("Province") String Province,
            @Query("LocalNetworkAddress") String LocalNetworkAddress,
            @Query("Grid") String Grid,
            @Query("PhysicalStationName") String PhysicalStationName,
            @Query("AddressOfPhysicalStation") String AddressOfPhysicalStation,
            @Query("GPS_X") String GPS_X,
            @Query("GPS_Y") String GPS_Y,
            @Query("StationModel") String StationModel,

            @Query("Vender") String Vender,
            @Query("AreaType") String AreaType,
            @Query("MainSceneType") String MainSceneType,
            @Query("Priority") String Priority,
            @Query("HighSpeedRailwayStation") String HighSpeedRailwayStation,
            @Query("Imgs") String Imgs,
            @Query("AutoGpsX") String AutoGpsX,
            @Query("AutoGpsY") String AutoGpsY,
            @Query("ManualInputGpsX") String ManualInputGpsX,
            @Query("ManualInputGpsY") String ManualInputGpsY,
            @Query("SignalIntensity") int SignalIntensity,
            //非室分
            @Query("Height") String Height,
            @Query("AntennaAzimuth") String AntennaAzimuth,
            @Query("IsBBUCentralizedDeployment") String IsBBUCentralizedDeployment,
            @Query("SectorAllocation") String SectorAllocation,
            @Query("RRUPlanningPower") String RRUPlanningPower,
            @Query("RRUTransceiverRequirements") String RRUTransceiverRequirements,
            @Query("RemotePowerDownAdjustmentIsRequired") String RemotePowerDownAdjustmentIsRequired,
            //室分
            @Query("ChamberMolecularSceneType") String ChamberMolecularSceneType,
            @Query("FrequencyChannel") String FrequencyChannel,
            @Query("CompartmentType") String CompartmentType,
            @Query("CoveringBuildingsFloorsOrLocations") String CoveringBuildingsFloorsOrLocations,
            @Query("CoverageArea") String CoverageArea,
            @Query("PRRUSourcesNum") String PRRUSourcesNum,
            @Query("NumberOfRRUSourcesForPassiveCellDivision") String NumberOfRRUSourcesForPassiveCellDivision,
            @Query("PassiveCellTypeSingleAndDoubleChannelType") String PassiveCellTypeSingleAndDoubleChannelType,
            //规划（工程期属）
            @Query("NumOfProject") String NumOfProject);

    //TODO 工单 可验收信息 列表
    @POST("CheckInfo/AppLoadAcceptanceInfo")
    Observable<List<Survey>> workTestMsgList(
            @Query("pageIndex") int pageIndex,@Query("pageSize") int pageSize,
            @Query("PhysicalStationName") String PhysicalStationName, @Query("Province") String Province,
            @Query("LocalNetworkAddress") String LocalNetworkAddress, @Query("Grid") String Grid,
            @Query("NumOfProject") String NumOfProject);

    //TODO 工单 可验收信息 承接
    @POST("CheckInfo/AppAcceptanceOfAcceptance")
    Observable<State> workTestMsgUndertake(
            @Query("UserId") int UserId,@Query("BaseStationId") int BaseStationId,
            @Query("DepartMentName") String DepartMentName);

    //TODO 工单 我的验收信息 列表
    @POST("CheckInfo/AppLoadCheckInfoOfMine")
    Observable<MyTestMsg> workMyTestMsgList(
            @Query("UserId") int UserId,@Query("pageIndex") int pageIndex,
            @Query("pageSize") int pageSize);

    //TODO 工单 我的验收信息 图片列表
    @POST("CheckInfo/AppGetDetialOfCheck")
    Observable<List<ImageJson>> workMyTestMsgImages(@Query("Id") int Id);

    //TODO 工单 我的验收信息 提交
    @POST("CheckInfo/AppSubmitCheckInfo")
    Observable<State> workMyTestMsgSubmit(
            @Query("UserId") int UserId,@Query("Id") int Id,@Query("BaseStationId") int BaseStationId,
            @Query("Province") String Province,@Query("LocalNetworkAddress") String LocalNetworkAddress,
            @Query("Grid") String Grid,@Query("Vender") String Vender, @Query("PhysicalStationName") String PhysicalStationName,
            @Query("AddressOfPhysicalStation") String AddressOfPhysicalStation, @Query("AreaType") String AreaType,
            @Query("MainSceneType") String MainSceneType, @Query("StationModel") String StationModel,
            @Query("ManualInputGpsX") String ManualInputGpsX,@Query("ManualInputGpsY") String ManualInputGpsY,
            @Query("AutoGpsX") String AutoGpsX,@Query("AutoGpsY") String AutoGpsY,@Query("IsDeviate") String IsDeviate,
            @Query("DepartMentName") String DepartMentName,@Query("NameOfOpenStationAddr") String NameOfOpenStationAddr,
            @Query("NumOfProject") String NumOfProject,@Query("Imgs") String Imgs,@Query("Priority") String Priority,
            @Query("SignalIntensity") String SignalIntensity);


    //TODO 工单 基站分布信息
    @POST("BaseStationInfo/WebLoadDistributionCurve")
    Observable<List<WorkMapMsg>> workMapLocationMsg(
            @Query("UserId") int UserId,@Query("Type") String Type);
}
